package com.sunlee.common.service.service;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.sunlee.common.core.entity.PageData;
import com.sunlee.common.service.dto.CategoryDTO;
import com.sunlee.common.service.dto.req.CategoryProductDTO;
import com.sunlee.common.service.dto.ProductDTO;
import com.sunlee.common.service.entity.CategoryEntity;
import com.sunlee.common.service.entity.vo.CategoryVO;

import java.util.List;
import java.util.Map;

/**
 * 分类表
 *
 * @author sunlee
 */
public interface CategoryService extends CrudService<CategoryEntity, CategoryDTO> {

    @Override
    PageData<CategoryDTO> pageOwn(Map<String, Object> params);

    List<CategoryDTO> getAllCategoryList(Integer type);

    @Override
    CategoryDTO getOwn(Long id);

    List<CategoryEntity> existSubCategory(Long[] ids);

    List<CategoryVO> getValidCategoryList();

    PageData<ProductDTO> getCategoryByIdAndLevel(CategoryProductDTO categoryProductDTO);

    List<CategoryEntity> list(LambdaQueryWrapper<CategoryEntity> wrapper);

    /**
     * 清除用户端分类列表缓存
     */
    void cleanCacheAllCategory();
}